package net.emsquared.gamedev.screens;

import net.emsquared.gamedev.TestGame;

/**
 * Copyright 2001-2011, Motio, Inc.
 * All rights reserved.
 */
public interface IScreen
{
   /**
    * Initialize all images, sounds, etc for this sccene
    */
   public void initialize(TestGame aController);

   /**
    * Call once the scene should be started
    */
   public void start();

   /**
    * Update all actors prior to redrawing the scene
    */
   public void update();

   /**
    * Draw all actors in their respective places
    */
   public void draw();

   /**
    * Handle a resize event (screen rotation?) on the current scene
    *
    * @param aWidth  screen width
    * @param aHeight screen height
    */
   public void resize(int aWidth, int aHeight);

   /**
    * Called the the game is paused via user command or OS input
    */
   public void pause();

   /**
    * Dispose of resources once the scene is no longer needed
    */
   public void dispose();
}
